package com.cy.ppj.model.vo.front.account;

import com.cy.ppj.model.enums.Sex;
import com.cy.ppj.model.enums.account.BrokerLevel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @description: 经纪人信息
 * @author: Ocean
 * @create: 2018-09-10 14:14
 **/
@Data
@ApiModel("经纪人信息")
public class BrokerInfoVO {

    @ApiModelProperty(value = "用户ID", example = "1")
    private Long userId;

    @ApiModelProperty(value = "真实姓名")
    private String realName;

    @ApiModelProperty(value = "性别")
    private Sex sex;

    @ApiModelProperty(value = "经纪人等级")
    private BrokerLevel brokerLevel;

    @ApiModelProperty(value = "经纪人等级文案")
    private String brokerLevelText;

    @ApiModelProperty(value = "推荐人手机号码")
    private String recommendMobile;

    @ApiModelProperty(value = "推荐人真实姓名")
    private String recommendRealName;
    
    @ApiModelProperty(value = "是否新用户 （体验期3个月）")
    private Boolean newUser;

    @ApiModelProperty(value = "升级时间")
    private Date upgradeTime;

    @ApiModelProperty(value = "累计放款订单数", example = "0")
    private Integer allLoanCount;

    @ApiModelProperty(value = "累计放款金额", example = "0")
    private BigDecimal allLoanAmount;

    @ApiModelProperty(value = "月放款订单数", example = "0")
    private Integer monthLoanCount;

    @ApiModelProperty(value = "季度放款订单数", example = "0")
    private Integer quarterLoanCount;

    @ApiModelProperty(value = "月放款金额", example = "0")
    private BigDecimal monthLoanAmount;

    @ApiModelProperty(value = "季度放款金额", example = "0")
    private BigDecimal quarterLoanAmount;

    @ApiModelProperty(value = "剩余保级金额", example = "0")
    private BigDecimal residualKeepAmount;

    @ApiModelProperty(value = "剩余升级金额", example = "0")
    private BigDecimal residualUpgradeAmount;

    @ApiModelProperty(value = "经纪人返佣比例", example = "0")
    private BigDecimal brokerCommissionRate;

    @ApiModelProperty(value = "团队一级返佣", example = "0")
    private BigDecimal teamCommissionFirstRate;

    @ApiModelProperty(value = "团队二级返佣", example = "0")
    private BigDecimal teamCommissionSecondRate;

    @ApiModelProperty(value = "团队一级人数", example = "0")
    private Integer teamCommissionFirstConut;

    @ApiModelProperty(value = "团队二级人数", example = "0")
    private Integer teamCommissionSecondConut;

    @ApiModelProperty(value = "团队人数", example = "0")
    private Integer teamCommissionConut;

    @ApiModelProperty(value = "月度获取佣金", example = "0")
    private BigDecimal monthCommission;

    @ApiModelProperty(value = "是否保级")
    private Boolean protectBrokerLevel = false;

    @ApiModelProperty(value = "保级时间")
    private Date protectBrokerLevelDate = new Date();
    
    @ApiModelProperty(value = "成为经纪人的时间")
    private Date createTime;

    @ApiModelProperty(value = "体验期到期时间")
    private Date experienceTime;
}
